[release/7.0] Fix making column required on SQL Server with idempotent migrations #29784
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #29530, backports #29619
Description
Before EF 7.0, making a column non-nullable which contained nulls would fail. EF 7.0 added an UPDATE statement to convert nulls to a default value, but the SQL wasn't properly escaped.
Customer impact
Making a column non-nullable can cause the migration to fail in certain scenarios (when the column is renamed).
How found
Customer reported on 7.0
Regression
Partial; this scenario used to work correctly as long as the column contained no nulls. When nulls were present, this already caused a failure (null constraint violation).
Testing
Added a test for the affected scenario.
Risk
Very low; the fix is trivial and affects migrations only (no runtime impact). A quirk was added to revert back to older behavior.